from lxml import etree


####################################
# 这个类主要封装了browser的
# find_element_by_xpath()方法
# 以及 find_elements_by_xpath()方法
# 还有切换页面的一些方法:
####################################
class Util:

    # browser对象, 通过这个来访问网页
    browser = None

    # 构造函数, 把browser传进去
    def __init__(self, browser):
        self.browser = browser

    # 构造函数2
    def __init__(self, browser, url):
        browser.get(url)
        self.browser = browser

    # 设置browser的url
    def setURL(self, url):
        self.browser.get(url)

    # 获取单个元素标签
    def getElement(self, xpath:str):
        return self.browser.find_element_by_xpath(xpath)

    def getElement2(self, element, xpath:str):
        return element.find_element_by_xpath(xpath)

    # 获取多个元素标签的列表
    def getElements(self, xpath:str):
        return self.browser.find_elements_by_xpath(xpath)

    def getElements2(self, element, xpath: str):
        return element.find_elements_by_xpath(xpath)



    # 切换到新的标签
    def switch(self):
        all_handles = self.browser.window_handles
        self.browser.switch_to.window(all_handles[-1])

    # 切换到原来的标签
    def ret(self):
        all_handles = self.browser.window_handles
        self.browser.switch_to.window(all_handles[0])


    # 关闭标签页
    def close(self):
        self.browser.close();



